Method and computer system for selecting an edge server computer

ABSTRACT

Media Distribution within the Internet is done with the help of Application-Servers, Content-Servers and distributed Edge-Servers where the clients are connected to Media Distribution Services. A computer system is provided comprising client  1 , having a Web browser with a media player  2 , Web application server  3 , content server, edge servers ES 1  to ES 4  and media request broker  11 . After the client  1  has selected a media for streaming the media request broker  11  makes a determination concerning an appropriate edge server to perform the streaming operation. This determination is made based on an extension of the client&#39;s http request made by the edge server and passed from the application server to the media request broker.

The present invention relates to the field of data communication, inparticular to distributing and streaming of data, for accessing digitalinformation, including audio, video and business type information, atremotely stored locations and for communicating that information to ausers premise.

From U.S. Pat. No. 5,734,719 a system for accessing digital informationover a computer network is known. The system contains a master serverwhich is situated geographically so as to be accessible to networksubscribers. It's geographic and network location is dependent uponcommunication network systems and subsystem cost and availability inorder to best serve a customers premise, whether it's a retail store orsimilar point-of-sale or other end-user-location. Security mechanismsthat require centralized database authorization prior to thetransmission of content and/or the manufacture of any of the products isprovided in addition.

New media data extends traditional computer data formats into morenatural data formats for the interaction of humans and computers byincorporating images, motion pictures, voice, audio and video. One ofthe key problems with new media data is transferring the usually hugeamounts of content through a network.

A stream server requires all data to be streamed to reside locally onthe stream server. The connection bandwidth to the rendering client(media player) has to fulfill at least the requirements corresponding tothe nature of the data to be transmitted. For this reason stream serversare placed on so called edge servers (the edge of the network in theconnection path to the client; also referred to as the “last mile”).

In order to initiate a streaming operation streaming meta data needs tobe provided to the renderer client (media player) requesting the stream.The meta data or meta file usually contains at least an identification(key) of the media data to be streamed and the identification of thestream server e.g. the TCP/IP host name of the stream server machine andthe port the stream server software listens to.

When a user wants to have media streamed to his client he normally“clicks” on a hyperlink identifying the media on the web page presentedto him through his web browser. The web browser generates a http requestcontaining the media identification information. As a response to thatthe application server sends the media meta data to the client's webbrowser. Based on that information the web browser typically invokes thecorresponding media player which resides on a client and is responsibleto receive the meta data from the network, negotiate connection to thestream server, receive and to render the data in parallel.

The way streaming technology is realized today, media players are onlyable to render streams from a corresponding stream server usually builtby the same company. Examples of such proprietary stream formats are theIBM Video charger/Video charger player, Apple-quick time, MicrosoftMediaServer/MediaPLayer and Real Networks G2 server/player.

A common problem of the prior art data transfer protocols, in particularstreaming protocols over a computer network, such as the Internet, isthe bandwidth required to perform a streaming operation.

It is thus an object of the present invention to provide an improvedmethod and computer system for distributing content data to edge serversand in particular, to select an edge server or acceptable alternativeedge server which is located topologically nearest to the client whichrequests the streaming service.

The object of the invention is achieved by the features stated in theenclosed independent claims to which reference should now be made.Further advantageous arrangements and embodiments of the invention areset forth in the respective sub claims.

The invention allows to determine an edge server location to which theclient is connected while sending the request for streaming to theapplication server. This determination is done by adding information tothe client's http request containing the media identifier on the way toit's Web application server which is contacted by the client to select afile for downloading and/or streaming.

Typically the Web application server is contacted by the client byinputting the corresponding uniform resource locator into the client'sWeb browser program. The connection between the client and the Webapplication server is provided by establishing a communication pathincluding a plurality of server computer nodes. The first servercomputer node in the path from the client to the Web application serveris the server topologically closest to the client which can thus beexpected to be an efficient edge server to provide the streamingservices with the best performance and shortest latency time for theclient.

In one embodiment of the invention this server—being the first node inthe path from the client to the Web application server—is selected bythe Web application server or an associated media request broker to bethe server from which the download of the desired file is to beperformed. The corresponding Meta data provided from the media requestbroker to the Web application server to the client contains dataidentifying the selected server.

In a further preferred embodiment the media request broker contains afile comprising a set of alternative servers being located in the samegeographical or topological region as the first server node in the pathbetween the client and the Web application server. In this case theserver from which the download is to be performed is selected from thegroup comprising the set of servers in the same geographical/topologicalregion as the node itself.

The selection of a particular server out of this group of servers isdone based on a determination of a relative quality weight index of theserver in the group. The relative quality weight can be determined basedon one or more of the following criteria: availability of the desiredmedia on the server, number of transactions in process, usage ofprocessing resources and available bandwidth in the communication pathto the client.

In a further preferred embodiment the other server computers in the pathfrom the client to the Web application server are also taken intoconsideration for the selection of the particular server. In additioneach of these additional servers can also have associated regionalservers which can also be taken into consideration for determining anappropriate server to perform the download and/or streaming operation.

In a further preferred embodiment a server computer can contain streamservers of different data formats. If a media is available on thatserver computer in a format which is different to the format required bythe requesting client this server computer can still be selected to bethe server computer of choice. In this case the data format available onthe server computer is transcoded “on the fly” to the desired format andthen streamed to the client.

A particular field of application of the present invention is mobilecommunication, in particular with respect to digital telephony such asUMTS. In this case the client can be any mobile device, such as a mobilephone having an integrated MP3 player, a personal digital assistant or aportable computer, such as a Laptop or Palm top computer, having awireless interface.

A particular advantage of the present invention is that by selecting aserver based on it's quality weight the computer network can be balancedas far as the distribution of computing and/or bandwidth resources isconcerned. The overall system throughput can thereby be optimized.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and is notlimited by the figures of the accompanying drawings in which:

FIG. 1 is a block diagram of a first embodiment of a computer system ofthe invention,

FIG. 2 is a block diagram of a second embodiment of a computer system ofthe invention; and

FIG. 3 is an embodiment of a method of the invention.

The computer system of FIG. 1 has a client 1. The client 1 has a webbrowser and a media player 2, for example an IBM Video charger player.

The client 1 can connect with the help of his web browser to Webapplication server 3 via a computer network, such as the Internetcomprising the edge servers ES1, ES2, ES3, ES4 and other edge serversnot shown in FIG. 1. The edge server ES1 has a media cache controller 4,stream server 5 and cache 6.

The stream server can be an IBM Video charger to interface with thecorresponding media player 2 of client 1. The streaming operation isperformed out of the cache 6. The media cache controller 4 controls andanalyses the status and operation of stream server 5 and it's cache 6.

In particular media cache controller 4 evaluates a present system statusto provide a quality weight indicating the loading of the system. Thequality weight can include one or more of the following criteria:availability of the selected file in the cache 6, available bandwidthfor connecting to the client 1, percentage of processing resources ofthe edge server ES1 and/or other criteria.

Further the edge server ES1 has a memory 7 for storage of the identifierID1 of the edge server ES1. Hook 8 is coupled to the memory 7.

Each of the edge servers passes the http requests and responses of theclient and the web application server back and forth. For every httprequest coming from the client the edge server calls the hook 8 andpasses this http request to it.

The hook examines this http request for a unique signature whichidentifies the request as a media request. If the hook identifies thissignature it appends it's identifier ID1 to the http request and passesthe request back to the edge server. The edge server sends it to thenext edge server ES2 . . . ESn—if there is one—or to the applicationserver.

The further edge servers ES2, ES3 and ES4 in the communication pathbetween the client 1 and the Web application server 3 are of the same ora similar constitution than edge server ES1.

The computer system of FIG. 1 further includes media server 9 whichstores the selected media 10. Media server 9 can be coupled to anyone ofthe edge servers ES1 to ES4 for downloading the media 10 to thecorresponding edge server.

Web application server 3 is coupled to media request broker 11. Themedia request broker 11 selects one of the edge servers ES1 to ES4 oranother edge server to perform the streaming operation of the desireddata to client 1. Based on this selection of a server by media requestbroker 11 the Web application server generates the Meta data for theclient 1.

The Web application server has a memory 12 for at least temporarilystoring the http request of the client augmented by data indicative ofone or more of the edge servers comprised in the communication pathbetween the client 1 and the Web application server 3.

The Web application server further contains servlet 14 which is invokedthrough this http request when client 1 clicks on the Hyperlink to amedia 10.

In operation client 1 clicks on a hyperlink within a Web page 13 in it'sWeb browser program in order to request the desired media from the Webapplication server 3 via the Internet. As already explained in detailabove the web browser generates the corresponding http request which isrouted through the edge servers ES1 to ES4 such that a communicationpath including those edge servers results.

As the communication path is build up the hook 8 of edge server ES1 addsinformation to the http request to add it's identifier ID1 to therequest. Likewise the further edge servers ES2 to ES4 also appendcorresponding data to the http request.

Thus the resulting http request is composed of the original URL plusdata indicative of the identifiers ID1 to ID4.

Subsequently servlet 14 is invoked with all the information containedwithin the client's http request and it transfers at least the extensionto the media request broker 11.

The media request broker has a variety of options to select anappropriate edge server as a server for streaming of the desired file 10to client 1. One option is to select the edge server ES1 as the edgeserver which is closest to the client 1 in the communication path whichhas been established through the Internet to the Web application server3.

It is assumed that the closest edge server ES1 also provides highestbandwidth. The identity of the edge server ES1 is determined by themedia request broker by analyzing the appended extension provided by thehook running on each edge server ES1 to ESn.

Based on this information the media request broker 11 generates the Metadata which is required by client 1 to access a stream server. The Metadata includes the complete Network address of stream server 5 (e.g.IP-address and port) and a key for access to the desired media 10 isprovided to client 1 by Web application server 3.

In response to receipt of the Meta data the client 1 connects to theedge server ES1, in particular to stream server 5, to invoke thestreaming operation. In case the desired media 10 is already availablein the cache 6 the streaming can start immediately.

If this is not the case first a download operation of the file 10 fromthe media server 9 to the cache 6 of the edge server ES1 needs to beinitiated.

Alternatively the Media request broker can also take into considerationthe further edge servers ES2 to ES4 as identified by the extensionprovided by Servlet 14. In either case Media request broker 11 evaluatesthe quality weights provided by the Media cache controllers 4 of thecorresponding edge servers ES1 to ES4 to select the most suitable edgeserver.

For example the edge server ES2 may already contain the media 10 in it'scache 6 while the media 10 is not available in the cache 6 of the edgeserver ES1. In this case the quality weight of the edge server ES2 isgreater than the quality weight of the edge server ES1 even though theedge server ES1 is closer to client 1 due to the fact that the edgeserver ES2 already has the required data.

Likewise edge server ES2 or another edge server can be selected by theMedia request broker for other reasons, for example the edge server ES1being overloaded, the stream server 5 of the edge server ES1 being downor not having the required data format.

FIG. 2 shows a further preferred embodiment of the invention whereinlike elements are denoted by the same reference numerals. The edgeserver ES1 of the computer system of FIG. 2 has an additional mediacache controller 15, stream server 16 and cache 17. The stream server 16is capable of streaming a different format than stream server 5. Againedge server ES1 has memory 7 and hook 8.

As in the previous embodiment hook 8 serves to provide an extension tothe http request provided by the client 1 to append informationindicative of the identifier ID1 of the edge server ES1.

On a second level of hierarchy the edge server ES1 has a media edgecontroller 18 which communicates with the media cache controllers 4 and15 of the individual stream servers 5 and 16.

Further the computer system comprises the edge servers ES1 a, ES1 b, ES1c and ES1 d which are located in the same geographical/topologicalregion or area 19 of the edge server ES1. Likewise the other edgeservers ES2 to ES4 can be associated to corresponding additional edgeservers in their respective regions or areas.

This situation is reflected by the database 20 stored by the mediarequest broker 11. The database 20 groups edge servers of each of theregions or areas; for example in case of the region 19 it assigns theedge server ES1 to the additional edge servers ES1 a to ES1 d. Thedatabase 20 can contain similar entries for the further edge servers ES2to ES4.

When the media request broker 11 obtains the extension from servlet 14it identifies the first edge server in the path between client 1 and Webapplication server 3—which is the edge server ES1. In the next stepmedia request broker 11 identifies the additional edge servers ES1 a toES1 d being located in the same geographical/topological region 19 ofthe edge server ES1 by querying database 20.

Further the media request broker 11 obtains the relative quality weightsfrom the media cache controllers and/or media edge controllers of therespective group of edge servers of the region 19. The media requestbroker 11 selects the stream server providing the highest quality weightfrom this group of edge servers.

If the highest quality weight of a stream server of this group of edgeservers is not sufficient, for example because it is below a predefinedthreshold value, the media request broker 11 performs an equivalentoperation for the next edge server ES2 and the associated regional groupof additional edge servers not shown in FIG. 2 to search for a streamserver having a sufficient quality weight.

As a result of this process the media request broker 11 returns a streamserver address to the Web application server 3 based on which the metadata for client 1 is generated.

In the embodiment of the FIG. 2 it is also possible for media requestbroker 11 to select—for example—Edge Server ES1 with stream server 16even though the actual media to be streamed is only residing in thecache of stream server 5 in the format of stream server 5 which is notcompatible to the format necessary for media player 2 at the client.This is due to the fact that the edge server ES1 has a transcoderprogram for transcoding the data provided by stream server 16 into therequired format of the media player 2.

The transcoding is initiated by media request broker with acorresponding message to the media edge controller. In the example therequested media taken from the cache of Stream Server 16 is transcodedand the resulting media is stored in the cache of Stream Server 5.Subsequently a meta file is generated pointing to stream server 5 andthe media would be streamed from stream server 5 to the media player.

With respect to FIG. 3 now a preferred embodiments of a method of theinvention is explained in greater detail. In step 1 a client connects toa web page containing hyperlinks to media objects (e.g. Media files). Instep 2 the client selects a media by clicking hyperlink.

In step 3 a Web Browser generates a http request containing the uniquesignature of the media request.

Step 4 is a for-next-loop containing the following steps 5, 6 and 7:

For all edge servers 1 to n:

Pass Http request to edge server ESm.Invoke hook at edge server ESm.Check hook if media request signature is present.

(Step 5)

In step 6 it is decided if a media request signature is present. If thisis the case an ID of the edge server ESm is appended to the http requestin step 7 and the control goes back to step 5 with an incremented m.Otherwise m is incremented directly and the control goes back to step 5as long as m remains lesser or equal to n.

In step 8 the Http request arrives at the Web Application Server. Nextin step 9 the Web Application Server invokes a servlet and passes a URLand the extension(s) of the Edge Servers to the Servlet.

The extension of the URL is accessed in step 10 by the servlet toprovide the extension to the media request broker in step 11.

Based on the extension the media request broker determines qualityweights of potential edge servers in step 12. A potential edge server isthe first edge server in the communication path between the client andthe Web page—which is edge server ES1—or an edge server from a regionalgroup of the edge server ES1 and/or one of the edge servers ES2 to ES4and/or corresponding regional groups of the edge servers ES2 to ES4.

In step 13 the media request broker selects an appropriate edge serverbased on the quality weight as determined in step 12.

Based on the selected edge server corresponding media data is generatedin step 14 which is send to the client in step 15.

The client connects to the edge server indicated in the meta data andprovides the key to the edge server to initiate the streaming in step160. The streaming actually starts in step 17.

DEFINITIONS

-   1. A method for selecting a first server computer for sending of    data to a client computer, the method comprising the steps of:    -   accessing a second server computer through a path in a computer        network, the path comprising a first set of server computers,    -   adding information indicative of at least one server computer of        the first set of server computers to a locator of a resource on        the second server computer, the resource having a unique        signature as part of their identifier; and    -   selecting the first server computer based on the information        added to the locator.-   2. The method of definition 1 the second server computer being a Web    application server comprising a Web page with a Hyperlink    referencing the data to be send to the client, the hyperlink    including a unique signature, the method further comprising the step    of selecting the Hyperlink by the client; subsequently generating an    http request out of this hyperlink by a web browser; this http    request containing the unique signature identifying the media    request.-   3. The method of definitions 1 or 2 further comprising the steps of:    -   at least temporarily storing the information added to the        locator on the second server computer,    -   providing of the information to a Media Request Broker in        response to a client's selection of the Hyperlink.-   4. The method of anyone of definitions 1, 2 or 3 the media request    broker selecting the first server computer based on the information.-   5. The method of anyone of the preceding definitions further    comprising the steps of:    -   determining a quality weight of at least one of the server        computers in the path,    -   selecting the first server computer from the first set of server        computers based on the quality weight.-   6. The method of anyone of the preceding definitions further    comprising the steps of:    -   storing of a set of locators of a second set of server computers        being in the same geographical/topological area as a server        computer in the first set of server computers, and    -   determining a quality weight of at least one of the server        computers of the second set for selection of the first server        computer.-   7. The method of anyone of the preceding definitions further    comprising the steps of:    -   providing the media request broker with the information, the        information being indicative of the server computer of the first        set of server computers being the first node in the path,    -   determining a quality weight based on the information for the        first server computer node in the path and for the server        computers of the second set of server computers belonging to        that server computer node,    -   selecting one of the server computers from the group comprising        the first server computer node in the path and the set of second        server computers with a quality weight being greater than a        predefined threshold value,    -   determining a quality weight of a second server computer node in        the path in case none of the quality weights of the first group        is sufficient.-   8. The method of anyone of the preceding definitions the quality    weights being determined based on one or more of the following    criteria: availability of the data on a server computer, number of    transactions in process on the server computer, percentage of    processing resources in use on the server computer, communication    bandwidth available in the communication link with the client.-   9. A server computer system comprising a stream server (5, 16) and    storage means (6, 17) for storing and/or buffering of data to be    streamed to a client (1), means (7) for storing an identifier of the    server computer and means (8) for adding information to a locator    provided by the client, the information being indicative of the    identifier.-   10. The server computer system of definition 9 further comprising    means for converting of the data from one stream format to another.-   11. A computer system comprising a Web application server (3) and a    media request broker (11), the Web application server containing a    Web page (13) with a Hyperlink referencing a media (10) to be    streamed to a client (1) and means (12) for at least temporarily    storing of information indicative of a first node in a communication    path between the client and the Web application server in a computer    network, means (14) for providing the information to the media    request broker upon selection of the Hyperlink by the client, and    means (20) for selecting a stream server for streaming the data to    the client based on the information.-   12. A system for selecting a first server computer from a plurality    of server computers for sending of data to a client, the system    comprising means adapted for carrying out the steps of the method    according to anyone of the preceding definitions 1 to 8.-   13. A data processing program for execution in a data processing    system comprising software code portions for performing a method    according to anyone of the definitions 1 to 8 when the program is    run on the computer.-   14. A computer program product stored on a computer usable medium,    comprising computer readable program means for causing a computer to    perform a method according to anyone of the definitions 1 to 8 when    the program is run on the computer.

1-14. (canceled)
 15. A method for selecting a first server computer forsending of data to a client computer, the method comprising the stepsof: accessing a second server computer through a path in a computernetwork, the path comprising a first set of one or more servercomputers; adding information indicative of at least one server computerof the first set of one or more server computers to a locator of aresource on the second server computer, the resource having a uniquesignature as part of its identifier; and selecting the first servercomputer based on the information added to the locator.
 16. The methodof claim 15, the second server computer being a Web application servercomprising a Web page with a hyperlink referencing the data to be sentto the client computer, the hyperlink including a unique signature, themethod further comprising the steps of selecting the hyperlink by theclient computer, and subsequently generating an http request out of thishyperlink by a web browser, this http request containing the uniquesignature identifying a media request.
 17. The method of claim 16,further comprising the steps of: at least temporarily storing theinformation added to the locator on the second server computer; andproviding of the information to a media request broker in response to aselection of the hyperlink by the client computer.
 18. The method ofclaim 17, the media request broker selecting the first server computerbased on the information.
 19. The method of claim 15, further comprisingthe steps of: determining a quality weight of at least one of the one ormore server computers in the path; and selecting the first servercomputer from the first set of one or more server computers based on thequality weight.
 20. The method of claim 15, further comprising the stepsof: storing of a set of locators of a second set of one or more servercomputers being in a same geographical/topological area as a servercomputer in the first set of one or more server computers; anddetermining a quality weight of at least one of the one or more servercomputers of the second set for selection of the first server computer.21. A system comprising: a stream server and storage means for storingand/or buffering of data to be streamed to a client; circuitry forstoring an identifier of a server computer; and a hook for addinginformation to a locator provided by the client, the information beingindicative of the identifier.
 22. The system of claim 21, furthercomprising circuitry for converting of the data from one stream formatto another.
 23. The system of claim 21, further comprising: a Webapplication server and a media request broker, the Web applicationserver containing a Web page with a hyperlink referencing a media to bestreamed to a client and circuitry for at least temporarily storing ofinformation indicative of a first node in a communication path betweenthe client and the Web application server in a computer network; aservlet for providing the information to the media request broker uponselection of the hyperlink by the client; and circuitry for selectingthe stream server for streaming the data to the client based on theinformation.
 24. A system for selecting a first server computer forsending of data to a client computer, comprising: circuitry foraccessing a second server computer through a path in a computer network,the path comprising a first set of one or more server computers;circuitry for adding information indicative of at least one servercomputer of the first set of one or more server computers to a locatorof a resource on the second server computer, the resource having aunique signature as part of its identifier; and circuitry for selectingthe first server computer based on the information added to the locator.25. The system of claim 24, the second server computer being a Webapplication server comprising a Web page with a hyperlink referencingthe data to be sent to the client computer, the hyperlink including aunique signature, the system further comprising circuitry for selectingthe hyperlink by the client computer, and subsequently generating anhttp request out of this hyperlink by a web browser this http requestcontaining the unique signature identifying a media request.
 26. Thesystem of claim 24, further comprising: circuitry for determining aquality weight of at least one of the one or more server computers inthe path; and circuitry for selecting the first server computer from thefirst set of one or more server computers based on the quality weight.27. A computer program product stored on a computer usable medium,comprising computer readable means for causing a computer system toperform a method comprising the program steps of: accessing a secondserver computer through a path in a computer network, the pathcomprising a first set of one or more server computers; addinginformation indicative of at least one server computer of the first setof one or more server computers to a locator of a resource on the secondserver computer, the resource having a unique signature as part of itsidentifier; and selecting the first server computer based on theinformation added to the locator.
 28. The computer program product ofclaim 27, the second server computer being a Web application servercomprising a Web page with a hyperlink referencing the data to be sentto the client computer, the hyperlink including a unique signature, thecomputer program product further comprising the program step ofselecting the hyperlink by the client computer, and subsequentlygenerating an http request out of this hyperlink by a web browser, thishttp request containing the unique signature identifying a mediarequest.
 29. The computer program product of claim 28 further comprisingthe program steps of: at least temporarily storing the information addedto the locator on the second server computer; and providing of theinformation to a media request broker in response to a selection of thehyperlink by the client computer.